package edu.zut.generic;

import edu.object_oriented.superPra.Stu;

import java.util.List;

/*泛型类 ： 当前类的类型  在最初定义时不确定，
使用时根据用户需要自行定义
class  类名<T>
    T   U   K  E  ....
单独定义时  没意义
*/
public class Model<T> {

    String name;
    int age;
    //泛型参数
    T t;

    public void setT(T t) {
        this.t = t;
    }

    //泛型返回类型的方法
    public T method(){
        return t;
    }


    public static void main(String[] args) {
        //实例化时指定当前泛型类的类型
        Model<String> model = new Model<>();
        model.t = "字符串";
        String s = model.method();
        System.out.println(s);
        Model<Integer> model2 = new Model<>();
        model2.t = 100;
        int i = model2.method();
    }
}
class A{
    //泛型方法
    public <T> T test(T t){
        return t;
    }

    public static void main(String[] args) {
        A a = new A();
        a.test(1);
    }
}
//泛型接口
interface Dao<T>{
    //查询
    List<T> queryAll();
    T queryById(int id);
}
//针对User数据层操作
class UserDaoImpl implements Dao<User>{

    @Override
    public List<User> queryAll() {
        return null;
    }

    @Override
    public User queryById(int id) {
        return null;
    }
}

class StuDaoImpl implements Dao<Stu>{

    @Override
    public List<Stu> queryAll() {
        return null;
    }

    @Override
    public Stu queryById(int id) {
        return null;
    }
}


//有一张表叫User，我们会对应创建一个实体类映射表
class User{

}

